SWOT Simulated North American Continent Hydrology Dataset Exploration in the Cloud
From the PO.DAAC Cookbook, to access the GitHub version of the notebook, follow this link.
Accessing and Visualizing SWOT Simulated Datasets
Requirement:
This tutorial can only be run in an AWS cloud instance running in us-west-2: NASA Earthdata Cloud data in S3 can be directly accessed via temporary credentials; this access is limited to requests made within the US West (Oregon) (code: us-west-2) AWS region.
Learning Objectives:
Access all 5 products of SWOT HR sample data (archived in NASA Earthdata Cloud) within the AWS cloud, without downloading to local machine
Visualize accessed data
SWOT Simulated Level 2 North America Continent KaRIn High Rate Version 1 Datasets:
River Vector Shapefile - SWOT_SIMULATED_NA_CONTINENT_L2_HR_RIVERSP_V1
Notebook Author: Cassie Nickles, NASA PO.DAAC (Aug 2022)
Libraries Needed
import globimport osimport requestsimport s3fsimport netCDF4 as ncimport h5netcdfimport xarray as xrimport pandas as pdimport geopandas as gpdimport numpy as npimport matplotlib.pyplot as pltimport hvplot.xarrayimport shapefile as shpimport zipfile
Get Temporary AWS Credentials for Access
S3 is an ‘object store’ hosted in AWS for cloud processing. Direct S3 access is achieved by passing NASA supplied temporary credentials to AWS so we can interact with S3 objects from applicable Earthdata Cloud buckets. Note, these temporary credentials are valid for only 1 hour. A netrc file is required to aquire these credentials. Use the NASA Earthdata Authentication to create a netrc file in your home directory. (Note: A NASA Earthdata Login is required to access data from the NASA Earthdata system. Please visit https://urs.earthdata.nasa.gov to register and manage your Earthdata Login account. This account is free to create and only takes a moment to set up.)
The following crediential is for PODAAC, but other credentials are needed to access data from other NASA DAACs.
temp_creds_req = get_temp_creds()#temp_creds_req # !!! BEWARE, removing the # on this line will print your temporary S3 credentials.
Set up an s3fs session for Direct Access
s3fs sessions are used for authenticated access to s3 bucket and allows for typical file-system style operations. Below we create session by passing in the temporary credentials we recieved from our temporary credentials endpoint.
The native format for this sample data is a .zip file, and we want the .shp file within the .zip file, so we need to download the contents of the zip file into the cloud environment. I created a folder called SWOT_HR_shp to write to. Change the path to where you would like your extracted files to be written.
with zipfile.ZipFile(s3_file_obj1, 'r') as zip_ref: zip_ref.extractall('SWOT_HR_shp')
Next, we’ll look at the attribute table of the .shp file we just extracted to the ‘SWOT_HR_shp’ folder.
Accessing the remaining files is different than the shp files above. We do not need to unzip the files because they are stored in native netCDF files in the cloud. For the rest of the products, we will open via xarray.
The pixel cloud netCDF files are formatted with three groups titled, “pixel cloud”, “tvp”, or “noise” (more detail here). In order to access the coordinates and variables within the file, a group must be specified when calling xarray open_dataset.
ds_PIXC = xr.open_dataset(s3_file_obj3, group ='pixel_cloud', engine='h5netcdf')ds_PIXC
Geodetic latitude [-80,80] (degrees north of equator) of the pixel.
[769290 values with dtype=float64]
longitude
(points)
float64
...
long_name :
longitude (degrees East)
standard_name :
longitude
units :
degrees_east
valid_min :
-180.0
valid_max :
180.0
comment :
Longitude [-180,180) (east of the Greenwich meridian) of the pixel.
[769290 values with dtype=float64]
azimuth_index
(points)
float64
...
long_name :
rare interferogram azimuth index
units :
1
valid_min :
0
valid_max :
999999
comment :
Rare interferogram azimuth index (indexed from 0).
[769290 values with dtype=float64]
range_index
(points)
float64
...
long_name :
rare interferogram range index
units :
1
valid_min :
0
valid_max :
999999
comment :
Rare interferogram range index (indexed from 0).
[769290 values with dtype=float64]
interferogram
(points, complex_depth)
float32
...
long_name :
rare interferogram
units :
1
valid_min :
-999999.0
valid_max :
999999.0
comment :
Complex unflattened rare interferogram.
[1538580 values with dtype=float32]
power_plus_y
(points)
float32
...
long_name :
power for plus_y channel
units :
1
valid_min :
0.0
valid_max :
999999.0
comment :
Power for the plus_y channel (arbitrary units that give sigma0 when noise subtracted and normalized by the X factor).
[769290 values with dtype=float32]
power_minus_y
(points)
float32
...
long_name :
power for minus_y channel
units :
1
valid_min :
0.0
valid_max :
999999.0
comment :
Power for the minus_y channel (arbitrary units that give sigma0 when noise subtracted and normalized by the X factor).
[769290 values with dtype=float32]
coherent_power
(points)
float32
...
long_name :
coherent power combination of minus_y and plus_y channels
units :
1
valid_min :
0.0
valid_max :
999999.0
comment :
Power computed by combining the plus_y and minus_y channels coherently by co-aligning the phases (arbitrary units that give sigma0 when noise subtracted and normalized by the X factor).
[769290 values with dtype=float32]
x_factor_plus_y
(points)
float32
...
long_name :
X factor for plus_y channel power
units :
1
valid_min :
0.0
valid_max :
999999.0
comment :
X factor for the plus_y channel power in linear units (arbitrary units to normalize noise-subtracted power to sigma0).
[769290 values with dtype=float32]
x_factor_minus_y
(points)
float32
...
long_name :
X factor for minus_y channel power
units :
1
valid_min :
0.0
valid_max :
999999.0
comment :
X factor for the minus_y channel power in linear units (arbitrary units to normalize noise-subtracted power to sigma0).
[769290 values with dtype=float32]
water_frac
(points)
float32
...
long_name :
water fraction
units :
1
valid_min :
-1000.0
valid_max :
10000.0
comment :
Noisy estimate of the fraction of the pixel that is water.
[769290 values with dtype=float32]
water_frac_uncert
(points)
float32
...
long_name :
water fraction uncertainty
units :
1
valid_min :
0.0
valid_max :
999999.0
comment :
Uncertainty estimate of the water fraction estimate (width of noisy water frac estimate distribution).
[769290 values with dtype=float32]
classification
(points)
float32
...
long_name :
classification
flag_meanings :
land land_near_water water_near_land open_water land_near_dark_water dark_water_edge dark_water
flag_values :
[ 1 2 3 4 22 23 24]
valid_min :
1
valid_max :
24
comment :
Flags indicating water detection results.
[769290 values with dtype=float32]
false_detection_rate
(points)
float32
...
long_name :
false detection rate
units :
1
valid_min :
0.0
valid_max :
1.0
comment :
Probability of falsely detecting water when there is none.
[769290 values with dtype=float32]
missed_detection_rate
(points)
float32
...
long_name :
missed detection rate
units :
1
valid_min :
0.0
valid_max :
1.0
comment :
Probability of falsely detecting no water when there is water.
[769290 values with dtype=float32]
prior_water_prob
(points)
float32
...
long_name :
prior water probability
units :
1
valid_min :
0.0
valid_max :
1.0
comment :
Prior probability of water occurring.
[769290 values with dtype=float32]
bright_land_flag
(points)
float32
...
long_name :
bright land flag
standard_name :
status_flag
flag_meanings :
not_bright_land bright_land bright_land_or_water
flag_values :
[0 1 2]
valid_min :
0
valid_max :
2
comment :
Flag indicating areas that are not typically water but are expected to be bright (e.g., urban areas, ice). Flag value 2 indicates cases where prior data indicate land, but where prior_water_prob indicates possible water.
[769290 values with dtype=float32]
layover_impact
(points)
float32
...
long_name :
layover impact
units :
m
valid_min :
-999999.0
valid_max :
999999.0
comment :
Estimate of the height error caused by layover, which may not be reliable on a pixel by pixel basis, but may be useful to augment aggregated height uncertainties.
[769290 values with dtype=float32]
eff_num_rare_looks
(points)
float32
...
long_name :
effective number of rare looks
units :
1
valid_min :
0.0
valid_max :
999999.0
comment :
Effective number of independent looks taken to form the rare interferogram.
[769290 values with dtype=float32]
height
(points)
float32
...
long_name :
height above reference ellipsoid
units :
m
valid_min :
-1500.0
valid_max :
15000.0
comment :
Height of the pixel above the reference ellipsoid.
[769290 values with dtype=float32]
cross_track
(points)
float32
...
long_name :
approximate cross-track location
units :
m
valid_min :
-75000.0
valid_max :
75000.0
comment :
Approximate cross-track location of the pixel.
[769290 values with dtype=float32]
pixel_area
(points)
float32
...
long_name :
pixel area
units :
m^2
valid_min :
0.0
valid_max :
999999.0
comment :
Pixel area.
[769290 values with dtype=float32]
inc
(points)
float32
...
long_name :
incidence angle
units :
degrees
valid_min :
0.0
valid_max :
999999.0
comment :
Incidence angle.
[769290 values with dtype=float32]
phase_noise_std
(points)
float32
...
long_name :
phase noise standard deviation
units :
radians
valid_min :
-999999.0
valid_max :
999999.0
comment :
Estimate of the phase noise standard deviation.
[769290 values with dtype=float32]
dlatitude_dphase
(points)
float32
...
long_name :
sensitivity of latitude estimate to interferogram phase
units :
degrees/radian
valid_min :
-999999.0
valid_max :
999999.0
comment :
Sensitivity of the latitude estimate to the interferogram phase.
[769290 values with dtype=float32]
dlongitude_dphase
(points)
float32
...
long_name :
sensitivity of longitude estimate to interferogram phase
units :
degrees/radian
valid_min :
-999999.0
valid_max :
999999.0
comment :
Sensitivity of the longitude estimate to the interferogram phase.
[769290 values with dtype=float32]
dheight_dphase
(points)
float32
...
long_name :
sensitivity of height estimate to interferogram phase
units :
m/radian
valid_min :
-999999.0
valid_max :
999999.0
comment :
Sensitivity of the height estimate to the interferogram phase.
[769290 values with dtype=float32]
dheight_droll
(points)
float32
...
long_name :
sensitivity of height estimate to spacecraft roll
units :
m/degrees
valid_min :
-999999.0
valid_max :
999999.0
comment :
Sensitivity of the height estimate to the spacecraft roll.
[769290 values with dtype=float32]
dheight_dbaseline
(points)
float32
...
long_name :
sensitivity of height estimate to interferometric baseline
units :
m/m
valid_min :
-999999.0
valid_max :
999999.0
comment :
Sensitivity of the height estimate to the interferometric baseline.
[769290 values with dtype=float32]
dheight_drange
(points)
float32
...
long_name :
sensitivity of height estimate to range (delay)
units :
m/m
valid_min :
-999999.0
valid_max :
999999.0
comment :
Sensitivity of the height estimate to the range (delay).
[769290 values with dtype=float32]
darea_dheight
(points)
float32
...
long_name :
sensitivity of pixel area to reference height
units :
m^2/m
valid_min :
-999999.0
valid_max :
999999.0
comment :
Sensitivity of the pixel area to the reference height.
[769290 values with dtype=float32]
illumination_time
(points)
datetime64[ns]
...
long_name :
time of illumination of each pixel (UTC)
standard_name :
time
tai_utc_difference :
[Value of TAI-UTC at time of first record]
leap_second :
YYYY-MM-DD hh:mm:ss
comment :
Time of measurement in seconds in the UTC time scale since 1 Jan 2000 00:00:00 UTC. [tai_utc_difference] is the difference between TAI and UTC reference time (seconds) for the first measurement of the data set. If a leap second occurs within the data set, the attribute leap_second is set to the UTC time at which the leap second occurs.
[769290 values with dtype=datetime64[ns]]
illumination_time_tai
(points)
datetime64[ns]
...
long_name :
time of illumination of each pixel (TAI)
standard_name :
time
comment :
Time of measurement in seconds in the TAI time scale since 1 Jan 2000 00:00:00 TAI. This time scale contains no leap seconds. The difference (in seconds) with time in UTC is given by the attribute [illumination_time:tai_utc_difference].
[769290 values with dtype=datetime64[ns]]
eff_num_medium_looks
(points)
float32
...
long_name :
effective number of medium looks
units :
1
valid_min :
0.0
valid_max :
999999.0
comment :
Effective number of independent looks taken in forming the medium interferogram (after adaptive averaging).
[769290 values with dtype=float32]
sig0
(points)
float32
...
long_name :
sigma0
units :
1
valid_min :
-999999.0
valid_max :
999999.0
comment :
Normalized radar cross section (sigma0) in real, linear units (not decibels). The value may be negative due to noise subtraction.
[769290 values with dtype=float32]
phase_unwrapping_region
(points)
float64
...
long_name :
phase unwrapping region index
units :
1
valid_min :
-1
valid_max :
99999999
comment :
Phase unwrapping region index.
[769290 values with dtype=float64]
instrument_range_cor
(points)
float32
...
long_name :
instrument range correction
units :
m
valid_min :
-999999.0
valid_max :
999999.0
comment :
Term that incorporates all calibration corrections applied to range before geolocation.
[769290 values with dtype=float32]
instrument_phase_cor
(points)
float32
...
long_name :
instrument phase correction
units :
radians
valid_min :
-999999.0
valid_max :
999999.0
comment :
Term that incorporates all calibration corrections applied to phase before geolocation.
[769290 values with dtype=float32]
instrument_baseline_cor
(points)
float32
...
long_name :
instrument baseline correction
units :
m
valid_min :
-999999.0
valid_max :
999999.0
comment :
Term that incorporates all calibration corrections applied to baseline before geolocation.
[769290 values with dtype=float32]
instrument_attitude_cor
(points)
float32
...
long_name :
instrument attitude correction
units :
degrees
valid_min :
-999999.0
valid_max :
999999.0
comment :
Term that incorporates all calibration corrections applied to attitude before geolocation.
[769290 values with dtype=float32]
model_dry_tropo_cor
(points)
float32
...
long_name :
dry troposphere vertical correction
source :
European Centre for Medium-Range Weather Forecasts
institution :
ECMWF
units :
m
valid_min :
-3.0
valid_max :
-1.5
comment :
Equivalent vertical correction due to dry troposphere delay. The reported pixel height, latitude and longitude are computed after adding negative media corrections to uncorrected range along slant-range paths, accounting for the differential delay between the two KaRIn antennas. The equivalent vertical correction is computed by applying obliquity factors to the slant-path correction. Adding the reported correction to the reported pixel height results in the uncorrected pixel height.
[769290 values with dtype=float32]
model_wet_tropo_cor
(points)
float32
...
long_name :
wet troposphere vertical correction
source :
European Centre for Medium-Range Weather Forecasts
institution :
ECMWF
units :
m
valid_min :
-1.0
valid_max :
0.0
comment :
Equivalent vertical correction due to wet troposphere delay. The reported pixel height, latitude and longitude are computed after adding negative media corrections to uncorrected range along slant-range paths, accounting for the differential delay between the two KaRIn antennas. The equivalent vertical correction is computed by applying obliquity factors to the slant-path correction. Adding the reported correction to the reported pixel height results in the uncorrected pixel height.
[769290 values with dtype=float32]
iono_cor_gim_ka
(points)
float32
...
long_name :
ionosphere vertical correction
source :
Global Ionosphere Maps
institution :
JPL
units :
m
valid_min :
-0.5
valid_max :
0.0
comment :
Equivalent vertical correction due to ionosphere delay. The reported pixel height, latitude and longitude are computed after adding negative media corrections to uncorrected range along slant-range paths, accounting for the differential delay between the two KaRIn antennas. The equivalent vertical correction is computed by applying obliquity factors to the slant-path correction. Adding the reported correction to the reported pixel height results in the uncorrected pixel height.
[769290 values with dtype=float32]
height_cor_xover
(points)
float32
...
long_name :
height correction from KaRIn crossovers
units :
m
valid_min :
-10.0
valid_max :
10.0
comment :
Height correction from KaRIn crossover calibration. The correction is applied before geolocation but reported as an equivalent height correction.
[769290 values with dtype=float32]
geoid
(points)
float32
...
long_name :
geoid height
standard_name :
geoid_height_above_reference_ellipsoid
source :
EGM2008 (Pavlis et al., 2012)
units :
m
valid_min :
-150.0
valid_max :
150.0
comment :
Geoid height above the reference ellipsoid with a correction to refer the value to the mean tide system, i.e. includes the permanent tide (zero frequency).
[769290 values with dtype=float32]
solid_earth_tide
(points)
float32
...
long_name :
solid Earth tide height
source :
Cartwright and Taylor (1971) and Cartwright and Edden (1973)
units :
m
valid_min :
-1.0
valid_max :
1.0
comment :
Solid-Earth (body) tide height. The zero-frequency permanent tide component is not included.
[769290 values with dtype=float32]
load_tide_fes
(points)
float32
...
long_name :
geocentric load tide height (FES)
source :
FES2014b (Carrere et al., 2016)
institution :
LEGOS/CNES
units :
m
valid_min :
-0.2
valid_max :
0.2
comment :
Geocentric load tide height. The effect of the ocean tide loading of the Earth's crust. This value is reported for reference but is not applied to the reported height.
[769290 values with dtype=float32]
load_tide_got
(points)
float32
...
long_name :
geocentric load tide height (GOT)
source :
GOT4.10c (Ray, 2013)
institution :
GSFC
units :
m
valid_min :
-0.2
valid_max :
0.2
comment :
Geocentric load tide height. The effect of the ocean tide loading of the Earth's crust. This value is reported for reference but is not applied to the reported height.
[769290 values with dtype=float32]
pole_tide
(points)
float32
...
long_name :
geocentric pole tide height
source :
Wahr (1985) and Desai et al. (2015)
units :
m
valid_min :
-0.2
valid_max :
0.2
comment :
Geocentric pole tide height. The total of the contribution from the solid-Earth (body) pole tide height and the load pole tide height (i.e., the effect of the ocean pole tide loading of the Earth's crust).
[769290 values with dtype=float32]
ancillary_surface_classification_flag
(points)
float32
...
long_name :
surface classification
standard_name :
status_flag
source :
MODIS/GlobCover
institution :
European Space Agency
flag_meanings :
open_ocean land continental_water aquatic_vegetation continental_ice_snow floating_ice salted_basin
flag_values :
[0 1 2 3 4 5 6]
valid_min :
0
valid_max :
6
comment :
7-state surface type classification computed from a mask built with MODIS and GlobCover data.
Rare interferogram azimuth index (indexed from 0).
[769290 values with dtype=int32]
range_index
(points)
int32
...
_FillValue :
2147483647
long_name :
rare interferogram range index
units :
1
valid_min :
0
valid_max :
999999
coordinates :
longitude_vectorproc latitude_vectorproc
comment :
Rare interferogram range index (indexed from 0).
[769290 values with dtype=int32]
latitude_vectorproc
(points)
float64
...
_FillValue :
9.969209968386869e+36
long_name :
height-constrained geolocation latitude
standard_name :
latitude
units :
degrees_north
valid_min :
-80.0
valid_max :
80.0
comment :
Height-constrained geodetic latitude of the pixel. Units are in degrees north of the equator.
[769290 values with dtype=float64]
longitude_vectorproc
(points)
float64
...
_FillValue :
9.969209968386869e+36
long_name :
height-constrained geolocation longitude
standard_name :
longitude
units :
degrees_east
valid_min :
-180.0
valid_max :
180.0
comment :
Height-constrained geodetic longitude of the pixel. Positive=degrees east of the Greenwich meridian. Negative=degrees west of the Greenwich meridian.
[769290 values with dtype=float64]
height_vectorproc
(points)
float32
...
_FillValue :
9.96921e+36
long_name :
height above reference ellipsoid
units :
m
valid_min :
-1500.0
valid_max :
15000.0
coordinates :
longitude_vectorproc latitude_vectorproc
comment :
Height-constrained height of the pixel above the reference ellipsoid.
[769290 values with dtype=float32]
reach_id
(points, nchar_reach_id)
|S1
...
long_name :
identifier of the associated prior river reach
coordinates :
longitude_vectorproc latitude_vectorproc
comment :
Unique reach identifier from the prior river database. The format of the identifier is CBBBBBRRRRT, where C=continent, B=basin, R=reach, T=type.
[8462190 values with dtype=|S1]
node_id
(points, nchar_node_id)
|S1
...
long_name :
identifier of the associated prior river node
coordinates :
longitude_vectorproc latitude_vectorproc
comment :
Unique node identifier from the prior river database. The format of the identifier is CBBBBBRRRRNNNT, where C=continent, B=basin, R=reach, N=node, T=type of water body.
[10770060 values with dtype=|S1]
lake_id
(points, nchar_lake_id)
|S1
...
long_name :
identifier of the associated prior lake
coordinates :
longitude_vectorproc latitude_vectorproc
comment :
Identifier of the lake from the lake prior database) associated to the pixel. The format of the identifier is CBBNNNNNNT, where C=continent, B=basin, N=counter within the basin, T=type of water body.
[7692900 values with dtype=|S1]
obs_id
(points, nchar_obs_id)
|S1
...
long_name :
identifier of the observed feature
coordinates :
longitude_vectorproc latitude_vectorproc
comment :
Tile-specific identifier of the observed feature associated to the pixel. The format of the identifier is CBBTTTSNNNNNN, where C=continent, B=basin, T=tile number, S=swath side, N=lake counter within the PIXC tile.
[10000770 values with dtype=|S1]
ice_clim_f
(points)
int8
...
_FillValue :
127
long_name :
climatological ice cover flag
flag_meanings :
no_ice_cover partial_ice_cover full_ice_cover
flag_values :
[0 1 2]
institution :
University of North Carolina
coordinates :
longitude_vectorproc latitude_vectorproc
comment :
Climatological ice cover flag indicating whether the pixel is ice-covered on the day of the observation based on external climatological information (not the SWOT measurement). Values of 0, 1, and 2 indicate that the surface is not ice covered, partially ice covered, and fully ice covered, respectively. A value of 255 indicates that this flag is not available.
[769290 values with dtype=int8]
ice_dyn_f
(points)
int8
...
_FillValue :
127
long_name :
dynamical ice cover flag
flag_meanings :
no_ice_cover partial_ice_cover full_ice_cover
flag_values :
[0 1 2]
institution :
University of North Carolina
coordinates :
longitude_vectorproc latitude_vectorproc
comment :
Dynamic ice cover flag indicating whether the pixel is ice-covered on the day of the observation based on analysis of external satellite optical data. Values of 0, 1, and 2 indicate that the surface is not ice covered, partially ice covered, and fully ice covered, respectively. A value of 255 indicates that this flag is not available.
[769290 values with dtype=int8]
Conventions :
CF-1.7
title :
Level 2 KaRIn high rate pixel cloud vector attribute product
pixcvec_htvals = ds_PIXCVEC.height_vectorprocpixcvec_latvals = ds_PIXCVEC.latitude_vectorprocpixcvec_lonvals = ds_PIXCVEC.longitude_vectorproc#Before plotting, we set all fill values to nan so that the graph shows up better spatiallypixcvec_htvals[pixcvec_htvals >15000] = np.nanpixcvec_latvals[pixcvec_latvals >80] = np.nanpixcvec_lonvals[pixcvec_lonvals >180] = np.nan
PROJCS["WGS 84 / UTM zone 15N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32615"]]
spatial_ref :
PROJCS["WGS 84 / UTM zone 15N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32615"]]
comment :
UTM zone coordinate reference system.
array(b'1', dtype=object)
longitude
(y, x)
float64
...
long_name :
longitude (degrees East)
standard_name :
longitude
grid_mapping :
crs
units :
degrees_east
valid_min :
-180.0
valid_max :
180.0
comment :
Longitude [-180,180) (east of the Greenwich meridian) of the pixel.
[2376220 values with dtype=float64]
latitude
(y, x)
float64
...
long_name :
latitude (positive N, negative S)
standard_name :
latitude
grid_mapping :
crs
units :
degrees_north
valid_min :
-80.0
valid_max :
80.0
comment :
Latitude [-80,80] (degrees north of equator) of the pixel.
[2376220 values with dtype=float64]
wse
(y, x)
float32
...
long_name :
water surface elevation above geoid
grid_mapping :
crs
units :
m
valid_min :
-1500.0
valid_max :
15000.0
comment :
Water surface elevation of the pixel above the geoid and after using models to subtract the effects of tides (solid_earth_tide, load_tide_fes, pole_tide).
[2376220 values with dtype=float32]
wse_uncert
(y, x)
float32
...
long_name :
uncertainty in the water surface elevation
grid_mapping :
crs
units :
m
valid_min :
0.0
valid_max :
999999.0
comment :
1-sigma uncertainty in the water surface elevation.
[2376220 values with dtype=float32]
water_area
(y, x)
float32
...
long_name :
surface area of water
grid_mapping :
crs
units :
m^2
valid_min :
-2000000.0
valid_max :
2000000000.0
comment :
Surface area of the water pixels.
[2376220 values with dtype=float32]
water_area_uncert
(y, x)
float32
...
long_name :
uncertainty in the water surface area
grid_mapping :
crs
units :
m^2
valid_min :
0.0
valid_max :
2000000000.0
comment :
1-sigma uncertainty in the water surface area
[2376220 values with dtype=float32]
water_frac
(y, x)
float32
...
long_name :
water fraction
grid_mapping :
crs
units :
1
valid_min :
-1000.0
valid_max :
10000.0
comment :
Fraction of the pixel that is water.
[2376220 values with dtype=float32]
water_frac_uncert
(y, x)
float32
...
long_name :
uncertainty in the water fraction
grid_mapping :
crs
units :
1
valid_min :
0.0
valid_max :
999999.0
comment :
1-sigma uncertainty in the water fraction.
[2376220 values with dtype=float32]
sig0
(y, x)
float32
...
long_name :
sigma0
grid_mapping :
crs
units :
1
valid_min :
-1000.0
valid_max :
10000000.0
comment :
Normalized radar cross section (sigma0) in real, linear units (not decibels). The value may be negative due to noise subtraction.
[2376220 values with dtype=float32]
sig0_uncert
(y, x)
float32
...
long_name :
uncertainty in sigma0
grid_mapping :
crs
units :
1
valid_min :
0.0
valid_max :
1000.0
comment :
1-sigma uncertainty in sigma0. The value is provided in linear units. This value is a one-sigma additive (not multiplicative) uncertainty term, which can be added to or subtracted from sigma0.
[2376220 values with dtype=float32]
inc
(y, x)
float32
...
long_name :
incidence angle
grid_mapping :
crs
units :
degrees
valid_min :
0.0
valid_max :
90.0
comment :
Incidence angle.
[2376220 values with dtype=float32]
cross_track
(y, x)
float32
...
long_name :
approximate cross-track location
grid_mapping :
crs
units :
m
valid_min :
-75000.0
valid_max :
75000.0
comment :
Approximate cross-track location of the pixel.
[2376220 values with dtype=float32]
illumination_time
(y, x)
datetime64[ns]
...
long_name :
time of illumination of each pixel (UTC)
standard_name :
time
tai_utc_difference :
-32.0
leap_second :
YYYY-MM-DDThh:mm:ssZ
comment :
Time of measurement in seconds in the UTC time scale since 1 Jan 2000 00:00:00 UTC. [tai_utc_difference] is the difference between TAI and UTC reference time (seconds) for the first measurement of the data set. If a leap second occurs within the data set, the attribute leap_second is set to the UTC time at which the leap second occurs.
[2376220 values with dtype=datetime64[ns]]
illumination_time_tai
(y, x)
datetime64[ns]
...
long_name :
time of illumination of each pixel (TAI)
standard_name :
time
comment :
Time of measurement in seconds in the TAI time scale since 1 Jan 2000 00:00:00 TAI. This time scale contains no leap seconds. The difference (in seconds) with time in UTC is given by the attribute [illumination_time:tai_utc_difference].
[2376220 values with dtype=datetime64[ns]]
raster_qual
(y, x)
float32
...
standard_name :
status_flag
grid_mapping :
crs
flag_meanings :
good bad
flag_values :
[0 1]
valid_min :
0
valid_max :
1
comment :
Quality flag for raster data.
[2376220 values with dtype=float32]
n_wse_pix
(y, x)
float64
...
long_name :
number of wse pixels
grid_mapping :
crs
units :
l
valid_min :
0
valid_max :
999999
comment :
Number of pixel cloud samples used in water surface elevation aggregation.
[2376220 values with dtype=float64]
n_area_pix
(y, x)
float64
...
long_name :
number of area pixels
grid_mapping :
crs
units :
l
valid_min :
0
valid_max :
999999
comment :
Number of pixel cloud samples used in water area and water fraction aggregation.
[2376220 values with dtype=float64]
dark_frac
(y, x)
float32
...
long_name :
fractional area of dark water
grid_mapping :
crs
units :
l
valid_min :
-1000.0
valid_max :
10000.0
comment :
Fraction of pixel water area covered by dark water.
[2376220 values with dtype=float32]
ice_clim_flag
(y, x)
float32
...
long_name :
climatological ice cover flag
source :
UNC
grid_mapping :
crs
flag_meanings :
no_ice_cover uncertain_ice_cover full_ice_cover
flag_values :
[0 1 2]
valid_min :
0
valid_max :
2
comment :
Climatological ice cover flag indicating whether the pixel is ice-covered on the day of the observation based on external climatological information (not the SWOT measurement). Values of 0, 1, and 2 indicate that the pixel is likely not ice covered, may or may not be partially or fully ice covered, and likely fully ice covered, respectively.
[2376220 values with dtype=float32]
ice_dyn_flag
(y, x)
float32
...
long_name :
dynamic ice cover flag
source :
UNC
grid_mapping :
crs
flag_meanings :
no_ice_cover partial_ice_cover full_ice_cover
flag_values :
[0 1 2]
valid_min :
0
valid_max :
2
comment :
Dynamic ice cover flag indicating whether the surface is ice-covered on the day of the observation based on analysis of external satellite optical data. Values of 0, 1, and 2 indicate that the pixel is not ice covered, partially ice covered, and fully ice covered, respectively.
[2376220 values with dtype=float32]
layover_impact
(y, x)
float32
...
long_name :
layover impact
grid_mapping :
crs
units :
m
valid_min :
-999999.0
valid_max :
999999.0
comment :
Estimate of the water surface elevation error caused by layover.
[2376220 values with dtype=float32]
geoid
(y, x)
float32
...
long_name :
geoid height
standard_name :
geoid_height_above_reference_ellipsoid
source :
EGM2008 (Pavlis et al., 2012)
grid_mapping :
crs
units :
m
valid_min :
-150.0
valid_max :
150.0
comment :
Geoid height above the reference ellipsoid with a correction to refer the value to the mean tide system, i.e. includes the permanent tide (zero frequency).
[2376220 values with dtype=float32]
solid_earth_tide
(y, x)
float32
...
long_name :
solid Earth tide height
source :
Cartwright and Taylor (1971) and Cartwright and Edden (1973)
grid_mapping :
crs
units :
m
valid_min :
-1.0
valid_max :
1.0
comment :
Solid-Earth (body) tide height. The zero-frequency permanent tide component is not included.
[2376220 values with dtype=float32]
load_tide_fes
(y, x)
float32
...
long_name :
geocentric load tide height (FES)
source :
FES2014b (Carrere et al., 2016)
institution :
LEGOS/CNES
grid_mapping :
crs
units :
m
valid_min :
-0.2
valid_max :
0.2
comment :
Geocentric load tide height. The effect of the ocean tide loading of the Earth’s crust.
[2376220 values with dtype=float32]
load_tide_got
(y, x)
float32
...
long_name :
geocentric load tide height (GOT)
source :
GOT4.10c (Ray, 2013)
institution :
GSFC
grid_mapping :
crs
units :
m
valid_min :
-0.2
valid_max :
0.2
comment :
Geocentric load tide height. The effect of the ocean tide loading of the Earth’s crust. This value is reported for reference but is not applied to the reported height.
[2376220 values with dtype=float32]
pole_tide
(y, x)
float32
...
long_name :
geocentric pole tide height
source :
Wahr (1985) and Desai et al. (2015)
grid_mapping :
crs
units :
m
valid_min :
-0.2
valid_max :
0.2
comment :
Geocentric pole tide height. The total of the contribution from the solid-Earth (body) pole tide height and the load pole tide height (i.e., the effect of the ocean pole tide loading of the Earth’s crust).
[2376220 values with dtype=float32]
model_dry_tropo_cor
(y, x)
float32
...
long_name :
dry troposphere vertical correction
source :
European Centre for Medium-Range Weather Forecasts
institution :
ECMWF
grid_mapping :
crs
units :
m
valid_min :
-3.0
valid_max :
-1.5
comment :
Equivalent vertical correction due to dry troposphere delay. The reported water surface elevation, latitude and longitude are computed after adding negative media corrections to uncorrected range along slant-range paths, accounting for the differential delay between the two KaRIn antennas. The equivalent vertical correction is computed by applying obliquity factors to the slant-path correction. Adding the reported correction to the reported water surface elevation results in the uncorrected pixel height.
[2376220 values with dtype=float32]
model_wet_tropo_cor
(y, x)
float32
...
long_name :
wet troposphere vertical correction
source :
European Centre for Medium-Range Weather Forecasts
institution :
ECMWF
grid_mapping :
crs
units :
m
valid_min :
-1.0
valid_max :
0.0
comment :
Equivalent vertical correction due to wet troposphere delay. The reported water surface elevation, latitude and longitude are computed after adding negative media corrections to uncorrected range along slant-range paths, accounting for the differential delay between the two KaRIn antennas. The equivalent vertical correction is computed by applying obliquity factors to the slant-path correction. Adding the reported correction to the reported water surface elevation results in the uncorrected pixel height.
[2376220 values with dtype=float32]
iono_cor_gim_ka
(y, x)
float32
...
long_name :
ionosphere vertical correction
source :
Global Ionosphere Maps
institution :
JPL
grid_mapping :
crs
units :
m
valid_min :
-0.5
valid_max :
0.0
comment :
Equivalent vertical correction due to ionosphere delay. The reported water surface elevation, latitude and longitude are computed after adding negative media corrections to uncorrected range along slant-range paths, accounting for the differential delay between the two KaRIn antennas. The equivalent vertical correction is computed by applying obliquity factors to the slant-path correction. Adding the reported correction to the reported water surface elevation results in the uncorrected pixel height.